0 GOTO3 1 _O1,21,38,3,3,0,0 2 _PM1$:_PM2$:_PM3$:_G:RETURN 3 I=I+1:IFI<2THENLOAD"SPACECODE",8,1 4 SYS49152 8 GOTO10 9 POKE198,0:WAIT198,1:RETURN 10 _!0,0:_I:PRINT""; 20 _O1,1,38,23,0,1,0 21 GOSUB5000 22 I=102:IFRND(0)>.5THENI=160 23 _FA0,0,39,20,I,11 30 _O3,2,15,6,3 90 REM ----------- MENUE 100 : 105 _O1,21,38,3,3,0 106 _P"[211]TEUERUNG MIT DEN [154][195]URSORTASTEN UND [154][210]ETURN.":_G 110 _P"[194]EFEHLE":_P"[213][211][210]-[198]UNKTION" 111 _P"[198]EHLERMELDUNGEN":_P"[195]OPYRIGHT":_P"[196]IRECTORY":_P"[197][206][196][197]!":_MD 120 _FW0,9:_MA 210 C=USR(3)+1 220 ONCGOSUB1000,4000,2000,3000,500,600 230 GOTO120 500 PRINT"[153]";:_D2:RETURN 600 _T:_S:END 1000 REM ----------"[194][197][198][197][200][204][197] 1001 _O1,4,13,15,10 1003 _P"SYSRIGHT$NIT":_P"(null)PEN":_P"LENLOSE":_P"(null)OPLEVEL":_P"CHR$ET":_P"(null)CROLL" 1004 _P"(null)RINT":_P"(null)EY":_P"STR$IRECTORY":_P"ASCRAME":_P"ASCILL":_P"RIGHT$NVERT" 1005 _P"(null)ENUEBEFEHLE":_P"LENURSOR/ASCARBEN":_P"(null)(null)(null)(null)VALLEN(null)!":_MD 1008 _FW0,7:_MA 1009 B[178][183](3)[170]1 1010 [139]B[178]15[167]:_C:[142] 1011 [145]B[141]1030,1065,1150,1180,1210,1270,1310,1430,1480,1520,1600,1700,1800,1900 1013 [137]1008 1020 : 1021 [143] -----------"RIGHT$NIT 1022 : 1030 M1$="[201]NIT:":M2$="[153]_[201]":M3$="":GOSUB1 1032 _O4,6,31,7,5:_P"_[201]":_S 1040 _P"[149][193]LLE BEREITS GESPEICHERTEN (BZW. GEOEFFNETEN) [198]ENSTER WERDEN " 1050 _P";VERGESSEN. [196]ER [211]PEICHER AB $D000 WIRD FUER [215]INDOWS RESERVIERT." 1060 GOSUB9:_C:RETURN 1061 : 1062 REM -----------"[207]PEN 1063 : 1065 M1$[178]"(null)PEN:":M2$[178]"PRINT_(null) X,Y,XWIDTH,YWIDTH,FARBE" 1066 M3$[178]" [,SPEICHERN?[,LOESCHEN?]]":[141]1 1067 _O5,7,31,13,5 1070 _P"_(null)" 1080 _P"VERIFYATNN DER ANGEGEBENEN (null)OSITION (DER (null)UNKT X/Y LIEGT OPENINNERHALBVERIFY DES " 1090 _P";ASCENSTERS) WIRD EIN ASCENSTER GEOEFFNET, DAS XWIDTH (null)EICHEN BREIT UND " 1100 _P";YWIDTH (null)EICHEN LANG IST. (null)OLL DER BETROFFENE PEEKILDSCHIRMBEREICH " 1110 _P";OPENNICHTVERIFY ZWISCHENGESPEICHERT ODER GELOESCHT WERDEN, DANN GEHOERT AN " 1120 _P";DIE ENTSPRECHENDE (null)TELLE EINE 0, SONST EINE 1. STR$IESE BEIDEN (null)ARAMETER " 1130 _P";SIND OPTIONAL." 1140 [141]9:_C:[142] 1145 : 1146 [143] --------------"LENLOSE 1147 : 1150 M1$="[195]LOSE:":M2$="[153]_[195]":M3$="":GOSUB1 1155 _O5,8,20,6,5:_P"_[195]":_S 1160 _P"[149][196]AS ZULETZT GEOEFFNETE [198]ENSTER VERSCHWINDET VOM [194]ILDSCHIRM." 1170 GOSUB9:_C:RETURN 1174 : 1175 REM ----------------"[212]OPLEVEL 1176 : 1180 M1$[178]"(null)OPLEVEL:":M2$[178]"PRINT_(null)":M3$[178]"":[141]1 1185 _O4,9,15,6,6:_P"_(null)":_S 1190 _P"VERIFYATNLLE GESPEICHERTEN ASCENSTER WERDEN GESCHLOSSEN." 1200 [141]9:_C:[142] 1201 : 1202 [143] ----------------"CHR$ET 1203 : 1210 M1$="[199]ET:":M2$="[153]_[199]":M3$="":GOSUB1 1215 _O5,10,31,10,7:_P"_[199]":_S 1220 _P"[149][196]IE [203]OORDINATEN DES ZULETZT GESPEICHERTEN [198]ENSTERS WERDEN GEHOLT. " 1230 _P";[196]AS IST DANN NUETZLICH, WENN MAN EIN 'NICHT GESPEICHERTES' " 1240 _P";[198]ENSTER VERLASSEN UND IM ZUVOR GEOEFFNETEN " 1250 _P";'GESPEICHERTEN' ETWAS AUSGEBEN WILL." 1260 GOSUB9:_C:RETURN 1261 : 1262 REM -----------------"[211]CROLL 1263 : 1270 M1$[178]"(null)CROLL:":M2$[178]"PRINT_(null)":M3$[178]"":[141]1 1275 _O3,11,20,6,5:_P"_(null)":_S 1280 _P"VERIFYSTR$ER RIGHT$NHALT DES AKTUELLEN ASCENSTERS WIRD UM EINE (null)EILE NACH OBEN " 1290 _P";KOPIERT." 1300 [141]9:_C:[142] 1301 : 1302 [143] ---------------"(null)RINT 1303 : 1310 M1$="[208]RINT:":M2$="[153]_[208] STRING":M3$="":GOSUB1 1311 _O7,7,24,12,5:_P"_[208]":_S 1312 _P"[149][196]ER [211]TRING WIRD (MIT [215]ORTUMBRUCH) IN DAS [198]ENSTER GESCHRIEBEN, " 1313 _P";UND ZWAR IN DIE UNTERSTE [218]EILE. [196]ER RESTLICHE [201]NHALT DES [198]ENSTERS " 1314 _P";WIRD NACH OBEN GEROLLT." 1320 _K 1330 _S:_S:_P"[218]WEI [211]ONDERFAELLE VON _[208]:" 1340 _S:_P"[149]1.[201]ST DAS ERSTE [218]EICHEN DES [211]TRINGS EIN [211]EMIKOLON, SO WIRD DORT IN " 1350 _P";DER [218]EILE FORTGEFAHREN, WO DER [195]URSOR STEHT. [196]AS IST NUETZLICH BEIM " 1360 _P";[211]CHREIBEN VON [212]EXTEN, DIE NICHT IN EINE [194]ASIC-[218]EILE PASSEN." 1370 _K:_S 1380 _P"2.[197]IN ^ ALS ERSTES [218]EICHEN IM [211]TRING BEDEUTET, DASS DIE [193]USGABE OBEN " 1390 _P";LINKS BEGINNT UND KEIN [215]ORTUMBRUCH STATTFINDET. [196]URCH [211]TEUERZEICHEN " 1400 _P";ODER ZU LANGE [212]EXTE KANN MAN AUCH [194]EREICHE AUSSERHALB DES [198]ENSTERS " 1410 _P";ERREICHEN." 1420 GOSUB9:_C:RETURN 1421 : 1422 REM ----------------"[203]EY 1423 : 1430 M1$[178]"(null)EY:":M2$[178]"PRINT_(null) [X,Y[,FARBE]]":M3$[178]"":[141]1 1435 _O5,7,30,12,5:_P"_(null)":_S 1440 _P"VERIFYSTR$IESER PEEKEFEHL WARTET AUF EINEN (null)ASTENDRUCK. (null)ERDEN (null)ARAMETER " 1450 _P";ANGEGEBEN (X/Y), DANN ERSCHEINT AN DER ABGEGEBENEN (null)TELLE EIN KLEINES " 1460 _P"ASCENSTER MIT DER (null)ACHRICHT 'SPACE' IN LENURSORFARBE. STR$IE (null)OORDINATEN " 1465 _P";GEBEN DIESMAL DIE LINKE, OBERE VALCKE DES FOR(null)AHMENSVERIFY AN." 1470 _K16,6:_C:[142] 1471 : 1472 [143] ----------------"STR$IRECTORY 1473 : 1480 M1$="[196]IRECTORY:":M2$="[153]_[196] [FARBE]":M3$="":GOSUB1 1485 _O11,12,25,7,5:_P"_[196]":_S 1490 _P"[149][201]N EINEM GROSSEN [198]ENSTER WIRD DAS [196]IRECTORY ANGEZEIGT. [196]ER " 1500 _P"[194]ILDSCHIRM SIEHT DANACH GENAUSO AUS WIE VORHER." 1510 _K:_C:RETURN 1511 : 1512 REM ---------------"[198]RAME 1513 : 1520 M1$[178]"ASCRAME:":M2$[178]"PRINT_ASC X1,Y1,X2,Y2[,FARBE[,LOESCHEN?]]":M3$[178]"":[141]1 1525 _O5,6,32,6,5:_P"_ASC X1,Y1,X2,Y2,FA 1530 _S:_P"[149][197]S WIRD EIN [210]AHMEN AUF DEN [194]ILDSCHIRM GEZEICHNET, DER DIE " 1540 _P";[215]INDOWORGANISATION NICHT BEEINFLUSST." 1550 _K:_C:RETURN 1551 : 1552 REM --------------"[198]ILL 1553 : 1600 M1$[178]"ASCILLATNREA / ASCILL(null)INDOW":M2$[178]"PRINT_ASCATN X1,Y1,X2,Y2[,CHAR[,COLOR]]" 1601 M3$[178]"_ASC(null) [CHAR[,COLOR]]":[141]1 1610 _O6,1,31,18,5 1620 _P"_ASCATN / _ASC(null)":_S 1630 _P"VERIFYASCUELLT EINEN BESTIMMTEN PEEKEREICH DES PEEKILDSCHIRMS MIT DEM " 1640 _P";(null)EICHEN FORCHARVERIFY IN DER ASCARBE FORCOLORVERIFY. (null)ENN ALS (null)EICHENCODE '0' " 1645 _P";ANGEGEBEN WIRD, DANN WERDEN LEDIGLICH DIE VORHANDENEN (null)EICHEN " 1650 _P";EINGEFAERBT. (null)M DEN PEEKEREICH MIT LENODE-0-(null)EICHEN ((null)LAMMERAFFEN) " 1655 _P";ZU FUELLEN, MUSS ZUM ASCARBCODE 100 ADDIERT WERDEN " 1660 _P";(PEEKEISPIEL: _ASC(null) 0,101 FUELLT DAS AKTUELLE ASCENSTER MIT WEISSEN " 1665 _P";(null)LAMMERAFFEN)." 1670 _P"(null)IRD KEIN (null)EICHEN ANGEGEBEN, SO WID DER PEEKEREICH MIT (null)PACES GELOESCHT." 1680 _K:_C:[142] 1690 : 1691 [143] -----------------"RIGHT$NVERT 1692 : 1700 M1$="[201]NVERT[193]REA / [201]NVERT[215]INDOW":M2$="[153]_[201][193] X1,Y1,X2,Y2":M3$="_[201][215]" 1701 GOSUB1 1710 _O5,8,16,6,8 1720 _P"_[201][193] / _[201][215]":_S 1725 _P"[149][196]ER ANGEGEBENE [194]EREICH BZW. DAS AKTUELLE [198]ENSTER WIRD INVERTIERT." 1750 _K:_C:RETURN 1790 : 1791 REM ----------------"[205]ENUEBEFEHLE 1792 : 1800 M1$[178]"(null)ENUESTR$EFINIEREN: PRINT_(null)STR$ [ZEILE]" 1801 M2$[178]"(null)ENUEBALKENPEEKEWEGEN:PRINT_(null)(null) [ZEILE]" 1802 M3$[178]"(null)ENUEATNUTOMATIK: PRINT_(null)ATN [ZEILE1,ZEILE2]" 1803 [141]1 1810 _O1,1,38,18,10 1820 _P"_(null)STR$ / _(null)(null) / _(null)ATN":_S 1822 _P"VERIFY(null)M DIESE PEEKEFEHLE ANWENDEN ZU KOENNEN, MUSS EIN ASCENSTER GEOEFFNET " 1824 _P";SEIN. VALIN (VERTIKALES) (null)ENUE PROGRAMMIERT MAN FOLGENDERMASSEN:":_S 1826 _P"(null)IT FOR_(null)STR$VERIFY WIRD EIN ATNUSWAHLBALKEN ERZEUGT." 1828 _P"(null)ER FOR_(null)(null)VERIFY LAESST DIESER PEEKALKEN SICH DANN IN DIE ANGEGEBENE (null)EILE " 1830 _P";INNERHALB DES ASCENSTERS BEWEGEN.":_K:_S 1832 _P"ASCUER DIE MEISTEN (null)ENUES IST ES NICHT NOTWENDIG, DIE (null)ASTATURABFRAGE " 1834 _P"UMSTAENDLICH IN PEEKASIC ZU PROGRAMMIEREN. (null)TATTDESSEN GIBT MAN EINFACH " 1836 _P";NUR NOCH _(null)STR$ UND FOR_(null)ATNVERIFY EIN. STR$IESER PEEKEFEHL BEWIRKT, DASS SICH DER " 1838 _P";(null)ENUEBALKEN MIT DEN LENURSORTASTEN STEUERN LAESST (ZEILE1 & ZEILE2 = " 1839 _P";ATNNFANG & VALNDE DES (null)ENUES). (null)OBALD DANN (null)ETURN GEDRUECKT WIRD, " 1840 _P";WIRD WIEDER ZUM PEEKASIC ZURUECKGEKEHRT.":_S 1842 _P"STR$IE AKTUELLE (null)EILENNUMMER, IN DER SICH DER PEEKALKEN BEFINDET..." 1844 _P"FOR*VERIFY WIRD ZWISCHENGESPEICHERT, WENN EIN NEUES ASCENSTER GEOEFFNET WIRD. " 1846 _P"FOR*VERIFY KANN PER FORVAR=(null)(null)(null)(3)VERIFY ABGEFRAGT WERDEN. (null)BERSTE (null)EILE=(null)R.0." 1860 _K:_C:[142] 1897 : 1898 [143] ---------------"LENURSOR/ASCARBEN 1899 : 1900 M1$="[211]ET[195]URSOR: [153]_' X,Y" 1901 M2$="[211]ET[195]OLORS: [153]_! HINTERGRUND,RAHMEN":M3$="":GOSUB1 1910 _O3,10,15,6,4 1920 _P"_' / _!":_S 1930 _P"[196]IESE [194]EFEHLE ERKLAEREN SICH WOHL VON SELBST.":_K:_C:RETURN 2000 REM ---------"[198]EHLER 2001 _O1,6,16,6,4 2002 _P"CLR(null)(null) (null)RIGHT$(null)STR$(null)(null) (null)(null)(null)(null)VALSTR$":_P"(null)(null)(null) (null)ASC (null)VAL(null)(null)(null)(null)":_P"(null)(null)(null)STR$ (null)(null)(null) (null)(null)(null)CHR$" 2003 _P"(null)(null)(null)VAL (null)RIGHT$(null)(null)ATN(null)LENLEFT$":_P"RIGHT$(null)(null)VALCHR$ATN(null) (null)(null)ATN(null)(null)RIGHT$(null)(null)":_P"(null)(null)(null)(null)ATN(null)" 2004 _MD:C[178]0:[137]2010 2005 [161]A$:[139]A$[178]""[176]A$[178]"CMD"[167]C[178]C[170]1 2006 [139]A$[178]"ON"[176]A$[178]""[167]C[178]C[171]1 2007 [139]C[178][171]1[167]C[178]5 2008 [139]C[178]6[167]C[178]0 2009 [139]A$[178][199](13)[167]:_C:[142] 2010 _MMC 2011 [145]C[170]1[141]2030,2070,2110,2140,2180,2190:_K:_C:[137]2005 2030 _O19,6,20,6,9 2035 _P"^CMD_WAIT" 2040 _P"VERIFYVALS WURDE VERSUCHT, MIT _LEN EIN ASCENSTER ZU SCHLIESSEN, OBWOHL " 2050 _P"KEINS MEHR GESPEICHERT IST." 2060 [142] 2070 _O19,7,20,5,9:_P"^CMD_WAIT" 2080 _P"VERIFYVALS IST NICHT MEHR GENUG (null)PEICHERPLATZ FUER DAS ZU OEFFNENDE ASCENSTER " 2090 _P";VORHANDEN." 2100 [142] 2110 _O19,8,20,3,9:_P"^CMD_WAIT" 2120 _P"VERIFYVALIN (null)ORT IST ZU LANG, UM IN DAS ASCENSTER ZU PASSEN." 2130 [142] 2140 _O19,9,20,6,9:_P"^CMD_WAIT" 2150 _P"VERIFY(null)IT DEM _(null)-PEEKEFEHL KOENNEN NUR (null)TRINGS AUSGEGEBEN WERDEN, (null)AHLEN " 2160 _P";MUESSEN MIT (null)(null)(null)(X) UMGEFORMT WERDEN." 2170 [142] 2180 _O19,10,20,2,9:_P"^CMD_WAIT" 2181 _P"^CMD_WAIT":_P"VERIFY(null)IE IM NORMALEN PEEKASIC!":[142] 2190 _O19,11,20,2,9:[137]2181 3000 [143] ------------"LENOPYRIGHT 3010 _O1,18,38,1,3 3020 _P"[144] ([195]) BY [205][207][210][197].[199][207][210][197] [211][207][198][212][215][193][210][197] 1993 " 3021 GOSUB3040:_FW0,11:GOSUB3040:_FW0,12:GOSUB3040:_FW0,15:GOSUB3040:_FW0,1 3022 _K 3023 GOSUB3040:_FW0,15:GOSUB3040:_FW0,12:GOSUB3040:_FW0,11:GOSUB3040:_FW0,0 3024 GOSUB3040:GOSUB3040 3030 _C:RETURN 3040 FORI=1TO50:NEXT:RETURN 4000 REM -----------"[213][211][210] 4001 _O1,5,20,7,3 4010 _P"VERIFY... 'VAR' ENTSPRICHT EINER (null)ARIABLE. (null)ATUERLICH KANN DIE ASCUNKTION " 4020 _P";AUCH ANDERWEITIG VERWENDET WERDEN, Z.PEEK. '(null)(null)RIGHT$(null)(null) (null)(null)(null)(0)'" 4030 M1$[178]"PRINTVAR=(null)(null)(null)(0) ASCREIER (null)INDOWSPEICHER" 4040 M2$[178]"PRINTVAR=(null)(null)(null)(1/2) AKT. LENURSORPOSITION (X/Y)" 4050 M3$[178]"PRINTVAR=(null)(null)(null)(3) AKT. (null)ENUEPUNKT" 4060 [141]1:_K:_C:[142] 5000 _P"STR$IES IST DIE ATNNLEITUNG FUER DIE PEEKASIC-VALRWEITERUNG " 5001 _P";'(null)INDOW (null)YSTEM', DIE AUF DIESER STR$ISKETTE UNTER DEM (null)AMEN " 5002 _P";'(null)(null)ATNLENVALLEN(null)STR$VAL' ZU FINDEN IST. ATNKTIVIERT WIRD SIE MIT '(null)(null)(null) 49152'!" 5003 _P"(null)ATN(null)(null)VAL!":_S:_S:_S:_K:[142]